package com.ruoyi.storage.tickets.service;

import java.util.ArrayList;
import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.storage.bicycle.domain.Bicycle;
import com.ruoyi.storage.tickets.domain.Tickets;

/**
 * 生产工单Service接口
 * 
 * @author zzx
 * @date 2024-01-24
 */
public interface ITicketsService 
{
    /**
     * 查询生产工单
     * 
     * @param ticketsId 生产工单主键
     * @return 生产工单
     */
    public Tickets selectTicketsByTicketsId(String ticketsId);

    /**
     * 查询生产工单列表
     * 
     * @param tickets 生产工单
     * @return 生产工单集合
     */
    public List<Tickets> selectTicketsList(Tickets tickets);

    /**
     * 新增生产工单
     * 
     * @param tickets 生产工单
     * @return 结果
     */
    public int insertTickets(Tickets tickets);

    /**
     * 修改生产工单
     * 
     * @param tickets 生产工单
     * @return 结果
     */
    public int updateTickets(Tickets tickets);

    /**
     * 批量删除生产工单
     * 
     * @param ticketsIds 需要删除的生产工单主键集合
     * @return 结果
     */
    public AjaxResult deleteTicketsByTicketsIds(String[] ticketsIds);

    /**
     * 删除生产工单信息
     * 
     * @param ticketsId 生产工单主键
     * @return 结果
     */
    public AjaxResult deleteTicketsByTicketsId(String ticketsId);
    /**
     * 审核/反审核生产工单
     *
     * @param ticketsId 生产工单主键
     * @return 结果
     */
    public AjaxResult updateAudit(String ticketsId);

    public AjaxResult updateClose(String ticketsId);
    /**
     * 查询打印车辆ID数量
     *
     * @param ticketsId 生产工单主键
     * @return 结果
     */
    AjaxResult selectUnPrintNumberByTicketsId(String ticketsId);
    /**
     * 生成并打印车辆ID
     *
     * @param ticketsId 生产工单主键
     * @return 结果
     */
    AjaxResult addBicycleByticketsId(String ticketsId, Integer printNumber);
    /**
     * 查询车辆ID
     *
     * @param ticketsId 生产工单主键
     * @return 结果
     */
    List<Bicycle> selectBicycleByTicketsId(String ticketsId);

    AjaxResult updateTicketsByproductLine(ArrayList<String> ticketsIds, String productLine);

    int insertBicycle(String ticketsId,String bicycleId);
}
